<template>
	<view>
	<!-- 显示表格 -->
		<mescroll-body style="white-space: nowrap;overflow-x: scroll;" ref="mescrollRef" @init="mescrollInit" @down="downCallback" :up="upOption" @up="upCallback">  
			<wTable ref="mychild"  :columns="columns" :data1="data" border  @on-select-all="selectAll" @on-select="selectO">
			</wTable>
		</mescroll-body>
	</view>
</template>

<script>
	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
	import wTable from '../../components/wang-wTable/wTable.vue';
	export default {
		components: {
			wTable
		},
		mixins: [MescrollMixin], // 使用mixin (在main.js注册全局组件)
		data() {
			return {
			SelectList: [],
			columns: [],
			data:[],
			goods:[],
			curWord:"",
			upOption: {
				auto: false, //是否在初始化后,自动执行上拉回调callback; 默认true
				noMoreSize: 3, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看
				empty: {
					tip: '~ 搜索无结果 ~' // 提示
				}
			},
			}
		},
		onLoad() {
			uni.setNavigationBarColor({
				frontColor: "#ffffff",	//文字颜色
				backgroundColor: this.$kdup.color	//底部背景色
			})
			this.init(this.curWord);
		},
		methods: {
		init(currend){
			if(currend.indexOf("seq") != -1 && currend.indexOf("src") != -1){
			   currend=this.OJSCRKgetbarvalue(currend).src+"-"+ this.OJSCRKgetbarvalue(currend).seq;
			}
			var data={currend:currend};//未审核生产入库单列表
			this.$myRequest.postRequest("GetInstockExamine", data).then(res => {
				if (res.data.error == "") {
					//找到数据
				
					let array= this.$kdup.split(res.data.Table[res.data.Table.length-1], ";");
			
					// 枚举值是13开启复选
					var headArray = this.$kdup.getTableHead(array, true);
					var valueArray = this.$kdup.getTableContent(headArray, res.data.Table);
					
					this.columns = headArray;
					this.goods = valueArray;
				} else {
					//未找到数据
					uni.showToast({
						title: res.data.error,
						icon: "none"
					});
				}
				//这里是刷新数据
				this.mescroll.resetUpScroll();
			})
		},
		selectAll: function(allChecked) {
			this.SelectList = allChecked;
		},
		selectO: function({allChecked,checked}) {
			this.SelectList = allChecked;
		},
	
		//判断是提交/审核
		isverrify(SelectList){
			var c=0,r=0;
			for(var i=0;i<SelectList.length;i++){
			switch (SelectList[i].status) {
			  case "创建":
			  case "重新审核":
			    c++;
			    break;
			  case "审核中":
			    r++;
			    break;
			}
			}
		   if(c!=0 && r!=0){
			   return {str:"创建",flag:false}
		   }else if(c!=0 && r==0){
			   return {str:"创建",flag:true}  
		   }else if(c==0 && r!=0){
		       return {str:"审核中",flag:true}  
		   }
		},
		onNavigationBarButtonTap(e) {
			if(this.SelectList.length==0){
				uni.showToast({
					title:"请勾选需要提交或者审核的单据！",
					duration: 2000,
					icon: "none"
				});
			}
			//else{
				// var str=this.isverrify(this.SelectList).str;//返回“创建”“审核中”“重新审核”
				// var flag=this.isverrify(this.SelectList).flag;//放回false报错,否则提交审核
				// if(!flag){
				// 	uni.showToast({
				// 		title:"勾选的单据进行的操作不一致！",
				// 		duration: 2000,
				// 		icon: "none"
				// 	});
				// 	this.SelectList=[];
				// 	this.doSearch(this.curWord);	
				//}
				else{//提交审核
				uni.showLoading({title: '数据处理中...',mask:true});
				var data={arr:JSON.stringify(this.SelectList),status:1}
				this.$myRequest.postRequest("verify", data).then(res => {
					 setTimeout(function () {uni.hideLoading();}, 100);
					if(res.data.hasOwnProperty("error") && !this.$kdup.isEmpty(res.data.error)){
						uni.showToast({
							title: res.data.error,
							duration: 3000,
							icon: "none"
						}); 
						// this.SelectList=[];
						// this.doSearch(this.curWord);
					return;
					}
					// uni.showToast({
					// 	title: str=="创建" || str=="重新审核"?"提交成功！":"审核成功!",
					// 	duration: 1000
					// });
					 // if(str=="创建" || str=="重新审核"){
						//  for(var i=0;i<this.SelectList.length;i++){
						//  	this.SelectList[i].status="审核中"
						//  } 
					 // }else{
						// this.SelectList=[];
						// this.doSearch(this.curWord)
					 // }
					 uni.showToast({
					 	title: "提交成功",
					 	duration: 1000
					 });
					 this.SelectList=[];
					 this.doSearch(this.curWord)
				})
			}
		},
		onNavigationBarSearchInputConfirmed(e) {
			this.curWord = e.text // 已使用v-model,无需再次赋值
			// 节流,避免输入过快多次请求
			this.searchTimer && clearTimeout(this.searchTimer)
			this.searchTimer = setTimeout(() => {
				this.doSearch(this.curWord)
			}, 300)
		},
		onNavigationBarSearchInputChanged(e) {
			this.curWord = e.text // 已使用v-model,无需再次赋值
			// 节流,避免输入过快多次请求
			this.searchTimer && clearTimeout(this.searchTimer)
			this.searchTimer = setTimeout(() => {
				this.doSearch(this.curWord)
			}, 300)
		},
		// 输入监听
		inputWord(e) {
			// this.curWord = e.detail.value // 已使用v-model,无需再次赋值
			// 节流,避免输入过快多次请求
			this.searchTimer && clearTimeout(this.searchTimer);
			this.searchTimer = setTimeout(() => {
				this.doSearch(this.curWord)
			}, 300)
		},
		// 搜索
		doSearch(word) {
			this.init(word);
			this.curWord = word
			this.data = []; // 先清空列表,显示加载进度
			this.mescroll.resetUpScroll();
		},
		OJSCRKgetbarvalue: function(val) {
			var srcIndex = val.indexOf("src:");
			var seqIndex = val.indexOf("seq:");
			return {
				src: val.substring(srcIndex + 4, seqIndex),
				seq: val.substring(seqIndex + 4,val.length)
			}
		},
		upCallback: function() {
			//联网加载数据
			this.apiSearch().then(res => {
				//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
				this.mescroll.endSuccess(res.length);
				this.data = res;
				this.SelectList=[];
				this.$refs.mychild.isfalse(this.data);
			}).catch(() => {
				//联网失败, 结束加载
				this.mescroll.endErr();
			})
		},
		apiSearch: function() {
		return new Promise((resolute, reject) => {
			//延时一秒,模拟联网
			setTimeout(() => {
				try {
				if(this.curWord.indexOf("seq") != -1 && this.curWord.indexOf("src") != -1){
				   this.curWord=this.OJSCRKgetbarvalue(this.curWord).src+"-"+ this.OJSCRKgetbarvalue(this.curWord).seq;
				}
				var data={currend:this.curWord};//未审核生产入库单列表
					this.$myRequest.postRequest("GetInstockExamine", data).then(res => {
						if (res.data.error == "") {
							//找到数据
							let array= this.$kdup.split(res.data.Table[res.data.Table.length-1], ";");
							// 枚举值是13开启复选
							var headArray = this.$kdup.getTableHead(array, true);
							var valueArray = this.$kdup.getTableContent(headArray, res.data.Table);
							resolute(valueArray);
						} else {
							//未找到数据
							uni.showToast({
								title: res.data.error,
								icon: "none"
							});
							resolute([]);
						}
					})
		
				} catch (e) {
					reject(e);
				}
			}, 200)
		})
		}
		}
	}
</script>

<style>

</style>
